iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
DevOps

通过Jenkins 实现 CI&CD系列 第 16

Build 触发器

  • 分享至 

  • xImage
  •  

通过触发器,我们可以让 pipeline 按照我们指定的规则进行自动 Build。

Jenkins 支持六种触发器,分别是:

  • Build after other projects are built
  • Build periodically
  • GitHub hook trigger for GITScm polling
  • Poll SCM
  • Quiet period
  • Trigger builds remotely (e.g., from scripts)

Build after other projects are built:在指定的 Project 后面构建。并支持以下四种情况:

  • Trigger only if build is stable:只有在指定的 Project 在 stable 的情况下才会触发
  • Trigger even if the build is unstable:指定的 Project 在 unstable 的情况下也会触发
  • Trigger even if the build fails:指定的 Project 在 fail 的情况下也会触发
  • Always trigger, even if the build is aborted:总是触发,即使指定的项目构建被 aborted。

在该示例中,我们指定了一个 kubernetes project,这个 project 具体做了什么,并不重要,只要它是 stable 就行。
https://ithelp.ithome.com.tw/upload/images/20230920/20099494fONdbZlFmv.png

然后回到 kubernetes project 进行 build,等待 build 完成,回到这个 project,查看 Build History,会看到一个新的 Build 触发了,点击进去,在 status 页面,你可以看到 “Started by upstream project kubernetes build number 20”。kubernetes 是 project 名,20 是 kubernetes 的 build ID。即当前 build ID 触发了当前项目的 Build。
https://ithelp.ithome.com.tw/upload/images/20230920/20099494YQeGISbAv7.png

Build periodically:定时构建。下面示例定义了一个 project,每 10 分钟构建一次。在 Schedule 文本框中,有当前配置的说明,最后一次运行是什么时候,下一次是什么时候(填写好 Schedule,需要点击 Save 保存,这里的下一次运运行的时时间才会显示正确)。
https://ithelp.ithome.com.tw/upload/images/20230920/20099494ora8lEw90N.png

我们还可以设置:

  • 每小时 build 一次:H H/1 * * *
  • 每天的 8 点,12 点,22 点构建一次:H 8,12,22 * * *
  • 每天 22 点构建一次: H 12 * * *

等待一会,吃个饭回来看该项目的 build history,该 project 每 10 分钟就 build 一次。如果你想快点看到效果,可以设置为每分钟。
https://ithelp.ithome.com.tw/upload/images/20230920/200994941bHq4mvBpO.png

GitHub hook trigger for GITScm polling:利用 GitHub 的 webhook 实习当新的代码被 push 到仓库的时候,触发构建。关于这部分的内容,我们这里跳过,这里只要知道这个选项是做什么的,后面我们有专门的一篇来讲这个的配置过程。

Poll SCM:定期轮询代码仓库,如果有变化,就触发 Build。Schedule 语法格式与 Build periodically 一样。
https://ithelp.ithome.com.tw/upload/images/20230920/20099494jZI52nMqZH.png

然后更改 project 中的仓库中的内容,并 push。等待相应的时间(下一次时间是 5:12,但我们 push 的时间已经过 5:12 了,所以需要等到 5:22)。
https://ithelp.ithome.com.tw/upload/images/20230920/20099494onJFu2zsmS.png

Trigger builds remotely (e.g., from scripts):通过一个 URL 从远程触发 Build。
配置 Authentication Token,然后通过 URL 进行触发 Build。
JENKINS_URL/job/remotely/build?token=<TOKEN>
https://ithelp.ithome.com.tw/upload/images/20230920/20099494aM3qnhwbcR.png


上一篇
Docker pipeline
下一篇
通过 webhook 触发 Build
系列文
通过Jenkins 实现 CI&CD26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言